using MediatR;
using TerritoryGame.Domain.ValueObjects;

namespace TerritoryGame.Application.Commands;

public record PaintCommand : IRequest<PaintResult>
{
    public required GameId GameId { get; init; }
    public required PlayerId PlayerId { get; init; }
    public required Position Position { get; init; }
    public required BrushSize BrushSize { get; init; }
}

public record PaintResult
{
    public required bool Success { get; init; }
    public required double NewArea { get; init; }
    public string? ErrorMessage { get; init; }
}
